专利摘要:
共通データ型構造が、異なる型若しくは型構造に応じてデータを実装するアプリケーション間のアクセス要求を相互に関連付けるのに使用され得る。一実施形態において、共通データ構造は、(すなわち、未定義の)オペレーション、シーケンス、レコード、及びアトムに対するスキームを含む。そして、システムは、いかなる型の構造をも共通データ構造のスキームにマップすることができる。動作中、アプリケーションによるデータの要求は、アプリケーションによって使用される1つ以上のプロキシを識別して、データを前記共通データ構造にマップすることを含み得る。プロキシは、データのシェイプに基づいてデータを共通データ構造にマップする(それが識別されることができる程度に)。そして、プロキシは、識別されたマッピング情報を含む1つ以上のデータ構造を返信し得る。そして、アプリケーションは受信されたデータ構造に対して直接オペレーションを実行し得る。
公开号:JP2011515734A
申请号:JP2010548761
申请日:2009-01-23
公开日:2011-05-19
发明作者:エル.アンダーソン クリストファー;エー.ジパースキー クレメンス;ブラッドリー ケツァルコアトル;エス.ピンクストン ジェフリー;アール.ウィリアムズ ジョシュア;エフ.ボックス ドナルド;ジェイ.ガドジン マーティン
申请人:マイクロソフト コーポレーション;
IPC主号:G06F9-54
专利说明:

[0001] 本発明は、共通データ構造を介した異なる型の構造へのアクセスに関する。]
背景技術

[0002] コンピュータ化されたシステムの普及につれ、様々なアプリケーションプログラム及びドキュメントがコンピュータ化されたシステムで使用されてきた。特に、現在、複雑なオペレーティングシステム、データベース等として、機能するかどうか、又は、狭小な目的のために構成されたより簡単なアプリケーションプログラムとして機能するかどうか、いろいろな目的のために構成された広範囲のアプリケーションプログラムが存在する。多くの場合において、ソフトウェア開発者は、適切な種々のプログラミング言語を使用して特定のオペレーティングシステム/フレームワークを念頭において、新たなアプリケーションプログラムを作成するだろう。ソフトウェアが完成すると、開発者はアプリケーションをマシン実行可能コードにコンパイルするだろうし、そのマシン実行可能コードは適切なオペレーティングシステムを有するコンピュータシステムにインストールされ得る。多くの場合において、新たなアプリケーションプログラムを実行すると、システム/フレームワーク内のいくつかの他の要素又はアプリケーションを同時に利用する必要があるであろう。]
[0003] したがって、オペレーティングシステム若しくは汎用フレームワークの開発者並びにフレームワーク内で動作する個々のアプリケーションプログラムの開発者が考慮しなければならない多くの問題があることが十分理解されるだろう。これら関心の多くが一層競合し得る。例えば、多くのオペレーティングシステム/フレームワークの開発者が、セキュリティと安定性に関して興味を持っているものの、多くのアプリケーションプログラム開発者が、高速でかつカスタマイズ可能なオペレーションに関して興味を有し得る。ある場合には、セキュリティ及び安定性に関する要求により、いくつかのアプリケーションプログラムが動作する手法の速度とカスタマイズ性が制限されてしまう。]
[0004] この対立が明らかである1つの領域が、特定の種類の「型フレームワーク」にある。型フレームワークにおいて、関数、引数、及びデータ値さえも、特定の「型」と相関し得る。別のアプリケーション又は要素が対応するデータにアクセスし又はかかるデータを処理することができる前に、その特定の「型」は、種々のデータ(すなわち、関数、引数、又は値)がどのように現れる必要があるのかを一般的に定義する。強い型のフレームワークを採用するシステムにおいて、1つの型を使用するアプリケーション又は要素が他の型に対応する機能及びデータを実行し又はアクセスすることが禁止されるように、フレームワークは構成され得る。多くの異なる種類の型フレームワークがあるものの、いくつかの例示的フレームワークは、ノミナル(又は主格)構造型のフレームワークを含む。]
発明が解決しようとする課題

[0005] 一般に、1つのノミナル型のデータが、厳密に同一の型名を使用する(同一のノミナル型である)他のデータにアクセスのみし得る(又はアクセスのみされ得る)よう、ノミナル(又は主格)型のフレームワークが構成される。したがって、「顧客記録」と称する型名を使用する1つのアプリケーションは、型構造(例えば、記録フィールド等の数と名前)は同一であり得るものの、「メンバ記録」と称する型名の下で別のアプリケーションによって管理された類似のデータにアクセスすることが禁止され得る。例えば、顧客記録のノミナル型とメンバレコードのノミナル型の双方が等しい数と種類のフィールド(例えば、第1の名称=「文字列、」及び第2の名称=「文字列、」等を含むセット)を含む場合において、構造上の同一性が生じ得る。対照的に、構造型フレームワークは、名称よりもむしろ構造間の一致に依存している。構造型は不正確な型名称に制限されないものの、型のうちの1つが、別の型よりも多くの種類の構造又は異なる種類の構造(例えば、メンバレコードは、第1の名称=「文字列、」、第2の名称=「文字列、」及び電話番号=値を含む)を含むときに、構造の不一致が生じ得る。]
[0006] 多くの場合、ノミナル型及び構造型を含む種々の異なる型間の不一致に対して、種々の回避方法があるので、アプリケーションが相互利用することができる。ノミナル型フレームワークにおいて、例えば、開発者は対象となる各アプリケーションのために新たなコードを作成し得る。その新たなコードは、1つのノミナル型の型構造を別のノミナル型の同一の型の構造にマップし又は変換する。また、合致していない型構造間において類似の回避方法も可能であるものの、構造型のそのような変換は、より複雑である傾向がある。例えば、Lispプログラミング言語は、基本構造はデータのペアである1つの共通の従来の構造型フレームワークを実装する。したがって、別のアプリケーションプログラムのデータを使用するために、Lispベースのアプリケーションは、他方のアプリケーションにおけるデータ構造をデータペア構造に変換する必要が通常あり、これは困難であり得る。]
[0007] 同様に、Lispデータペア構造から別のアプリケーションの別の型の構造に変換することは、難しい場合がある。これが正しいのは、データがLispにおいてどのように配置されるかという点における差異だけでなく、Lispデータペアの値は、データペアの計算上効果で完全なトラバースをすることなく、確かめることが多くの場合困難であるからである。この原因は、部分的には、データペアが「シーケンス」であることを除いて、Lispデータペアが基本的なクエリを介して非常に多くの情報を提供しない傾向があるからである。しかしながら、Lispプログラミングフレームワークは、異なる型の構造に関する問題を提示し得る唯一の言語でない。各々が自身の異なる構造型フレームワークを使用する他の共通言語はXML、SQL、.NET、及びJavaを含み、相互利用は多くの場合いくつかの型構造の変換を意味する。]
[0008] 従って、アプリケーションプログラム間の相互利用を確実にする1つの手法が、あらかじめ適切であるとしてノミナル構造及び/又は型構造の詳細に一致する類似のプラットフォーム上で作業するアプリケーション開発者のためにある。もちろん、そのような厳密で正確な一致は必ずしも可能ではなく、後に同じシステムで使用されるだろう要素を作成し得る他の開発者に対して柔軟性をほとんど提供しない。したがって、開発者は、(先に説明したように)1つ以上のインタフェースを作成するはめに多くの場合なってしまう。その1つ以上のインタフェースは、より新しいアプリケーションの型のデータを別のアプリケーションの型のデータに変換し又はマップする。例えば、1つの構造型フレームワークで作成されたアプリケーションを作成する開発者は、Lispプログラミング言語で作成された他のアプリケーションに対する1つのアダプタを作成する必要があり得るし、そして/又は、場合によっては、XML、SQL、.NET、及びJavaプログラミング言語の各々で作成されたアプリケーションに対する個別のアダプタを作成する必要があり得る。]
[0009] これは新たなアプリケーションプログラムの開発者が他のプログラムで使用される型に関して知る(学習する)必要があるだろうということを意味していると、十分理解されるだろう。考慮すべき少数のアプリケーションにおいて、この問題はよりいっそうの不便が生ずる。しかしながら、より一般的には、特に、システム上の類似の又は同一の種類のデータ(例えば、会員資格記録、機能等)を使用するアプリケーションプログラムの数が増大するにつれて、この種のシナリオにより多くの開発者にとって問題が指数関数的に増大してしまう。さらにこの問題は悪化せしめられ得る。種々のアプリケーションプログラムの各々が変更し得るし種々なアップグレードによって変更され得るからであり、これにより、型名及び又は構造がさらに一層変更されうる結果となり得る。]
[0010] 従って、型ベースのフレームワークにおいて解決され得る多くの困難がある。]
課題を解決するための手段

[0011] 本発明の実施形態は、1つのアプリケーション又は要素によるアクセスを、共通/ユニバーサルデータ構造を介して、事実上すべての他のアプリケーションのすべてのデータに対して提供するように構成されているシステム、方法、及びコンピュータプログラムプロダクトにまで及ぶ。一実施形態において、例えば、アプリケーションによるデータの要求は、1つ以上のプロキシの始動を含み得る。その1つ以上のプロキシは、別のアプリケーションのデータを共通データ構造の1つ以上のスキーマにマップすることができる。そして、要求するアプリケーションは、プロキシによって作成されて返信された(マッピング情報の)データ構造を介して、要求されたデータと情報のやり取りを行うことができる。その結果、アプリケーションがあらかじめ共通データ構造を必然的に認識しているか否かに関係なく、そして、アプリケーションが他のアプリケーションで使用された特定の型の構造に従って自身のデータを構成しているか否かに関係なく、システムの各アプリケーションは、相互利用することができる。]
[0012] 従って、全体的なシステムの観点からの方法は、1つ以上の異なるアプリケーションによって保持されたデータに対する1つ以上のアクセス要求をアプリケーションから受信することを含み得る。この場合、当該要求されたデータは1つ以上の異なる型の構造に対応する。また、方法は、前記1つ以上の異なるアプリケーションに対応する1つ以上のプロキシを識別することを含み得る。さらに、方法は、当該識別された1つ以上のプロキシを使用して、当該要求されたデータを共通データ構造にマップすることを含み得る。当該識別された1つ以上のプロキシは、当該要求されたデータを前記共通データ構造にマップするマップされたデータ構造を作成する。その上、方法は、当該マップされたデータ構造を前記要求するアプリケーションに提供することを含み得る。]
[0013] さらに、アプリケーションの観点から方法は、1つ以上の異なる型の構造に対応するデータに対して1つ以上のアクセス要求を送信することを含む。また、方法は、当該要求されたデータと共通データ構造の1つ以上の構造型との間のマッピング情報を含む1つ以上のマップされたデータ構造を受信することを含む。さらに、方法は、1つ以上のマップされたデータ構造に対して1つ以上の動作を要求することを含み得る。この場合、当該要求された1つ以上の動作は、前記1つ以上の異なる型の構造の前記データに変換される。その上、方法は、前記1つ以上の要求された動作が前記1つ以上の異なる型の構造に対応する前記要求されたデータに対して完了した旨の1つ以上の確認を受信することを含み得る。]
[0014] 本概要は、発明の詳細な説明においてさらに後述する単純化した形態での概念の選択を導くために与えられている。この発明の概要は、特許請求の範囲に記載された発明の重要な特色若しくは本質的な特徴を特定することを目的としておらず、又は、特許請求の範囲に記載された発明の範囲を決定する際の補助手段として利用されることを目的としていない。]
[0015] 本発明の更なる特徴及び利点が以下の詳細な説明に部分的に記述されており、詳細な説明から部分的に明らかとなり、又はこの発明の実施によって理解されるであろう。本発明の特徴及び利点は、添付された請求の範囲において特に指摘された手段及び組合せによって認識され且つ得られるであろう。本発明のこれら特徴及び他の特徴は、以下の説明及び添付した請求の範囲から、より完全に明らかになるだろうし、又は、以下に詳細に説明するように、本発明の実施によって理解され得る。]
[0016] 本発明の上述の利点及び他の利点及び特徴が理解され得るように説明するために、簡単に上記説明された本発明のさらなる特定の説明が、添付図面に図示された特定の実施形態を参照することによって提供されるだろう。これら図面は本発明の典型的実施形態のみを示すものであり、本発明の範囲を限定するものとして考慮されるべきものでないことを理解すれば、本発明は、添付図面を使用してさらなる特異性及び詳細と共に、記述され且つ説明されるだろう。]
図面の簡単な説明

[0017] 1つ以上の異なる型の構造を実装する1つ以上のアプリケーションプログラムが共通のデータ構造を介して相互利用する本発明の実施形態に係る概要概略図である。
プロキシがデータを共通のデータ構造にマップするように始動せしめられる図1Aの概略図である。
アプリケーションが別のアプリケーションのデータをマップされたデータ構造を介して相互利用する図1Aー図1Bの概略図である。
共通データ構造を使用して、データにアクセスするか若しくは異なる構造型のデータへのアクセスを提供するアプリケーションプログラム及び全体的なシステムの観点に基づく方法のフロー図である。] 図1A 図1B
実施例

[0018] 本発明の実施形態は、1つのアプリケーション又は要素によるアクセスを、共通/ユニバーサルデータ構造を介して、事実上すべての他のアプリケーションのすべてのデータに対して提供するように構成されたシステム、方法、及びコンピュータプログラムプロダクトにまで及ぶ。一実施形態において、例えば、アプリケーションによるデータの要求は、1つ以上のプロキシの始動を含み得る。その1つ以上のプロキシは、別のアプリケーションのデータを共通データ構造の1つ以上のスキーマにマップすることができる。そして、要求するアプリケーションは、プロキシによって作成されて返信された(マッピング情報の)データ構造を介して、要求されたデータと情報のやり取りを行うことができる。その結果、アプリケーションがあらかじめ共通データ構造を必然的に認識しているか否かに関係なく、そして、アプリケーションが他のアプリケーションで使用された特定の型の構造に従って自身のデータを構成したか否かに関係なく、システムの各アプリケーションは、相互利用することができる。]
[0019] 従って、及び、本明細書において完全に理解されるように、本発明の少なくとも1つの実施形態は、共通データ構造(若しくは「ユニバーサルデータモデル」)を提供することに関連する。共通データ構造/ユニバーサルデータモデルは、言い換えると、「アトム」、「シーケンス」、「レコード」、又は「オペレーション」に関して、システムのすべてのアプリケーションのデータをも定義し若しくは分類する。共通データ構造又は別のアプリケーションによって使用される型構造に従う所定のアプリケーションのデータが厳密に分類若しくは構成されていなくとも、この分類システムは、開発者がアプリケーションを開発しているポイントだけでなく、ランタイムにおいても、使用され得る。]
[0020] したがって、このシステムは広く拡張可能であり得るし、多くの異なるフレームワーク内で存在し又は使用され得ることが十分理解されるだろう。例えば、本発明の実施形態は、共通言語ランタイム(「CLR」:common language runtime)環境における使用のために、及び/又は、すべての特定の言語フレームワークに関しても、容易に構成され又は拡張され得る。例えば、本発明の少なくとも1つの実施形態は、XMLに基づくアプリケーションにも特に利用可能である。実際、基本的なデータのシェイプが何らかのポイントで決定され得る限り、事実上全ての言語若しくはランタイム環境が使用され得る。]
[0021] 図1Aは、本発明の実施形態に係る概要概略図を示しており、その実施形態は、システム100の1つ以上の異なるアプリケーション又は要素が共通データ構造を介して互いに情報のやりとりを行う。例えば、図1Aは、1つ以上の処理モジュール105を含むシステム100について図示しており、その1つ以上の処理モジュール105は共通データ構造(「ユニバーサルデータモデル」)110に対して1つ以上のリファレンスをさらに含む。少なくとも1つの実施形態において、システム100は、ノミナル型の環境のサブスペース内で構成された一般化された構造型のシステムを含む。例えば、システム100は、CLRベースのノミナル型環境内で実装される共通構造型のシステムを含み得る。] 図1A
[0022] さらに、図1Aは、共通データ構造110が1つ以上のスキーマを含み、その1つ以上のスキーマが、特定のデータ「シェイプ(shape)」に関連する特定の構造型及びスキーマを定義することを示している。また、本明細書において完全に理解されるように、データ「シェイプ」とは、共通データ構造110に関してデータ要素を広く分類するのに使用され得るデータ要素の基本的であり識別可能な特徴を意味している。例えば、図1Aは、共通データ構造110が、データシェイプ135を有してオペレーションに対する構造型スキーマと、データシェイプ140を有してシーケンスに対する構造型スキーマと、データシェイプ145を有してレコードに対する構造型スキーマと、を含むことを示している。また、図1Aは、共通データ構造110が「アトム」に対する構造型スキーマをさらに分類することを示しており、その「アトム」に対する構造型スキーマは本質的には未定義のデータシェイプ(すなわち、「---」)を有するものである。] 図1A
[0023] 一般に、「オペレーション」とは、個別又はすべてのセットの他の機能の一部にかかわらず、実行され又は処理されるときに結果を返信する関数又は引数であるとデータを識別するデータシェイプを有する1つ以上のデータ要素のあらゆるセットをも意味している。少なくとも1つの実施形態において、例えば、オペレーションは、本質的にはコアとして、データの呼び出しできるピースとして解釈され得る。CLRに関して、CLRインスタンスを共通データ構造110にマップする際に、「方法」及び「デリゲイト」はオペレーションとして解釈され得る。そのため、CLR環境におけるオペレーションは、不特定数の「StructuredValue」パラメータを取って、「StructuredValue」を返すデリゲイトとして理解され得る。少なくとも1つの実施形態において、StructuredValueは、構造化された値を動作せしめるコードのインスタンスを分類するヘルパーとして提供される特定のノミナル型である。さらに、型StructuredValueは、構造化されたスペースに導入されている値を作動させると明確に予想するマーカ型としてAPI(アプリケーションプログラムインターフェイス)上で使用され得る。]
[0024] さらに、「シーケンス」とは、本明細書において、値の1つ以上の(順不同の)集合のあらゆるセットのデータシェイプを有するデータをいう。CLR環境に関し、例えば、シーケンスは「StructuredValues」の順不同の集合として理解され得る。一般に、シーケンスは、個別にラベル付けされていない値を含み、又は、ラベル若しくは名前が各値の単位で固有でないか若しくはシステム100の観点からすれば集合の値を区別するには不十分である値を含む。]
[0025] 対照的に、レコードの値が1つ以上の固有のフィールド名等の1つ以上の固有のラベルに関連づけられる更なるシェイプの特徴を有することを除いて、「レコード」はシーケンスのような値の集合のシェイプを有するデータを含む。CLR環境の少なくとも1つの実施形態において、例えば、レコードは、(自身が各々いくつかの「StructuredValue」である値を有する)1セットの名前を付されたメンバとして解釈され得るし、レコードが読み取り専用であるかを示すフラッグとして解釈され得る。したがって、かかる環境において、レコード及びシーケンスは、データシェイプを表現する主要な機構と解釈され得ることが十分理解され得る。]
[0026] もちろん、上記の説明にもかかわらず、1つの特定のオペレーティングシステム若しくはアプリケーションプログラムにおいていくつかの特定的用法を有し得るすべての特定の要素、機能、又は動作環境に対する本明細書における言及は、描写的な利便性を目的としていることが十分理解されるだろう。特に、本出願の明細書及び請求の範囲から、本発明の実施形態が、広範な範囲の動作環境及びオペレーティングシステム、及び/又は、フレームワーク/環境において実施され得ることが十分理解できるだろう。したがって、特定のオペレーティングシステム又はアプリケーションプログラムに限定するものと解釈するべきでない。]
[0027] いずれにせよ、図1Aは、システム100が1つ以上のアプリケーション又は要素120、125、及び135を含むことをも示す。その1つ以上のアプリケーション又は要素120、125、及び135は、本明細書により完全に説明されているように、共通データ構造110の利益を享受する。例えば、図1Aは、アプリケーション120、125、及び130の各々がデータセット123、127、及び133をそれぞれ含む。それらデータセット123、127、及び133は共通データ構造110のスキーマの1つに対応してもよいし又は対応しなくてもよい。特に、図1Aは、アプリケーション120がデータ要素A、B、及びCを含むデータセット123を含むことを示している。この場合、データ要素A、B、及びCは、対応するデータシェイプ135、140、及び145に少なくとも部分的にそれぞれ基づいて、オペレーション、シーケンス、又はレコードの構造型にそれぞれ対応している。] 図1A
[0028] 対照的に、図1Aは、型構造とデータシェイプが共通データ構造110に関して明確に定義されないものの、アプリケーション125及び130がデータセットをも含むことをも示している。例えば、図1Aは、アプリケーション135がデータ要素D、E、及びFに関するデータセット127を含むことを示している。これらのうち、データ要素Dだけが、データシェイプ135に基づいて「オペレーション」の構造型に対応することが知られている。特に、図1Aは、データ要素Eがデータシェイプ145を有し、Eが特定の構造型にまだ関連づけられていないことを示している。同様に、データ要素Fは、構造型に関連づけられておらず、既知のデータシェイプを含まない。] 図1A
[0029] さらに、図1Aは、アプリケーション130がデータ要素G、H、I、及びJを含むデータセット133を含むことを示している。これらのうち、データ要素G、H、及びIはそれぞれ識別可能なデータシェイプ140、135、及び145を有する。しかしながら、図示されているように、データ要素Iのみがレコードの構造型に対応するものと識別されている。その上、図1Aは、データ要素Jが、識別された構造型も、容易に識別可能なデータシェイプをも有しないことを示している。] 図1A
[0030] したがって、(アプリケーション120に比較された)アプリケーション125及び/又は135の種々のデータ要素における構造/型の観点から識別される差異は、いくつかの因子に依存し得ることが十分理解されるだろう。アプリケーション120に関して、例えば、開発者は、共通データ構造110及び要求されたスキーマの知識を考慮して、アプリケーション120を作成したかもしれないし、適切な構造型を有するデータ要素A、B、及びCを宣言したかもしれない。したがって、アプリケーション120のインストールの際に、処理モジュール105は、データ要素A、B、及びCの各々が共通データ構造110の図示された型及びデータシェイプに対応することを直ちに識別するように構成され得る。]
[0031] 対照的に、アプリケーション125及び/又は130の開発者は、特定の明確に定義されたデータシェイプを使用して、初めにアプリケーション125及び/又は130を作成したかもしれないし、他の異なる型のフレームワークに基づいて特定の構造型を宣言したかもしれない。したがって、インストールの際に、又は、データがシステム100によって識別された他のいくつかのポイントにおいて、アプリケーション125及び130が、共通データ構造110に対応する型構造の識別を具体的に提供してはいないかもしれない(又は、システム100は型構造を識別しなかった)。あるいは、アプリケーション125及び130は、共通データ構造110を考慮して開発されたかもしれないものの、何らかの理由のために、データ要素D−Jは処理モジュール105によって未だ識別されておらず、又は、特定の構造型に関連付けられていない。]
[0032] 一般に、構造の型が特定のデータ要素に関連づけられ得る多くの方法がある。例えば、その関連付けられた型構造とデータ要素のシェイプとをインストール等の際に処理モジュール105に対して発行するように、アプリケーションは構成され得る。同様に、アプリケーションは、所定のアプリケーションによって管理されたデータ(すなわち、データセット123)が共通データ構造110に一致することを識別する1つ以上のメッセージを用いて、(例えば、インストール中又はランタイム中に)処理モジュール105に単に応答し得る。しかしながら、本発明の少なくとも1つの利点は、1つ以上のプロキシ(例えば、165、170、175)を使用して、この情報の多く又はすべてがランタイムにて判断され得るということである。例えば、図1Aは、システム100がプロキシのレジストリ115を含み。そのプロキシのレジストリ115は、この場合、アプリケーション120に基づいたプロキシ165を少なくとも含むことを示している。また、図1Aは、レジストリ115がアプリケーション125に基づくプロキシ170、及びアプリケーション130に基づくプロキシ175を含むことを示している。] 図1A
[0033] 単に説明として、「プロキシ」とは、システム100において呼出され且つ特定のアプリケーションと連動させるのに使用される1つ以上のコンピュータ実行可能命令のセットを意味する。一実施形態において、これらプロキシは、既にコンパイルされて実行可能な命令として存在し得る。その既にコンパイルされて実行可能な命令は、事実上いつでも呼出しされ得る。しかしながら、さらなる実施形態又は代替実施形態において、これらプロキシは、システム100によって提供され且つ呼出される場合に最初にコンパイルされて実行される中間言語コードの形態を含み得る。いずれの場合においても、プロキシは、所定のアプリケーションプログラムに適切な特定のプログラム言語で作成されたようなアプリケーションに特有なものであり得ることが十分理解されるだろう。例えば、所定のプロキシは、特に、XML、SQL、Lisp等で作成されたプログラムに対して構成され得る。CLRに基づく少なくとも1つの実施形態において、例えば、「ClrStructureServices」として知られているプロキシは、「StructuredValues」に対してCLRインスタンスを表すように構成され得る。]
[0034] これらプロキシは、アプリケーション開発者によって作成され得るし、又は、システム100によって単に提供され得る。例えば、(アプリケーション120、125、130等の)アプリケーション開発者は、所定のアプリケーションに特有の1つ以上のプロキシを準備し得るし、アプリケーションのインストールの際にそのプロキシを登録し得る。ある場合には、いくつかの開発者にとって、この事は望ましいかもしれない。アプリケーション開発者は、プロキシがデータ要素を未定義の「アトム」として過度に分類することを避けることを確実になすより良い立場にあり得るからである。しかしながら、他の場合において、アプリケーション開発者は、共通データ構造110の構造型内で定義されたシェイプに少なくとも部分的に一致するそれらデータを準備し得るし、そういうものとして、開発者はデフォルトのプロキシを使用するという利便性を選択してもよい。]
[0035] 一般に、実行されると、所定のプロキシがアプリケーション(120、125、130等)によって保持された1つ以上のデータ構造又は要素にトラバースするように、各プロキシが構成されている。トラバースの際に、プロキシは、様々なデータ要素の「シェイプ」を識別するように最小限で構成される。上記から分かるように、これは、アプリケーションによって保持されたデータ要素が、ある最小のプロパティ(例えば、結果を返す)に従う機能又は引数であるか否かをプロキシコードが識別するように通常構成されるだろうということを意味している。本明細書に記載されるように、共通データ構造110のスキーマに対して、あるデータ要素が値の集合を形成するか否か、及び/又は、それら値がシーケンス若しくはレコードとしてデータ要素を分類し得る付加的ラベリングを含むか否かを識別するように、同一のプロキシは構成されるだろう。]
[0036] 図1Bは、システム100が、1つ以上のプロキシの幇助により、1つ以上のアプリケーション125及び130内のデータに対するアクセスをアプリケーション120に提供する概要概略図を示している。例えば、図1Bは、アプリケーションプログラム120が、1つ以上のデータアクセス要求180を送信して、アプリケーション125によって保持されたデータのアクセスを要求することを示している。この要求は、処理モジュール105を介する等して、システム100によって処理される。要求は、(アプリケーション120と比べて)異種の/互換性がない型の構造に対応するデータを含むので、図1Bは、処理モジュール105がプロキシレジストリ115に問い合わせて、いかなるプロキシがアプリケーション125の型構造を共通データ構造110にマップするのに使用されるべきであるかを識別することを示している。従って、図1Bは、処理モジュール105は、プロキシ170がアプリケーション125と相関することを識別し、要求185を介してプロキシ170を(すなわち、実行時間中に)始動することを示している。] 図1B
[0037] さらに、図1Bは、プロキシ170がアプリケーション125に関して初期化されることを示している。少なくとも1つの実施形態において、プロキシ170は異なるデータ要素D、E、F等の各々に行き来し始める。これは、利用可能な全ての構造型の同一性を識別し、且つ/又は各データ要素のデータシェイプを識別することを目的とする。少なくとも1つの実施形態において、例えば、プロキシ170は、データ要素Dが共通データ構造110に対する構造型フレームワーク内で理解されるようなオペレーションを含むことを識別する。さらに、プロキシ170は、データ要素Eがデータシェイプ145を有することを判断し得る。そのデータシェイプ145は、共通データ構造105のレコードに対する構造型に使用されるシェイプと一致する。その上、プロキシ170は、データシェイプのすべての構造型がデータ要素Fと同一であると識別し得ないので、データ要素Fをアトムとして割り当てる。] 図1B
[0038] データ要素に関してこのトラバース及びマッピングを終了する際に、プロキシ170は1つ以上のデータ構造を返信する。その1つ以上のデータ構造は、トラバースされた(又は要求された)データ要素を共通データ構造にマップする。例えば、図1Bは、プロキシ170が処理モジュール105を介してマップされたデータ構造195を送信することを示している。処理モジュール105はマップされたデータ構造195をアプリケーション120に送る。さらなる実施形態又は代替実施形態において、処理モジュール105は、マップされたデータ構造195が作成されていることを示すメッセージをアプリケーション120に単に返信し、さらに、アプリケーション120がマップされたデータ構造195にアクセスするのに使用することができる1つ以上のレファレンスを提供する。そして、アプリケーション120は、マップされたデータ構造195に関するマッピングを使用して、アプリケーション125におけるデータに対して1つ以上の動作を実行する。] 図1B
[0039] 例えば、図2は、アプリケーション120が、マップされたデータ構造195を介してアプリケーション125のデータを相互利用する少なくとも1つの例を示している。例えば、図2は、マップされたデータ構造195が、共通データ構造スキーマとアプリケーション125のデータ要素との間のマッピング若しくは相関情報を含むことを示している。特に、図2は、マップされたデータ構造195が、データ要素Dをオペレーションとして定義し若しくは関連付けるマッピング210を含むことを示している。さらに、図2は、マップされたデータ構造が、データ要素Eをレコードとして定義し若しくは関連付けるマッピング220、及び、データ要素Fをアトムとして定義し若しくは関連付けるマッピング230を含むことを示している。そして、アプリケーション120は、これら種々のマッピングを参照することによって、アプリケーション125のデータを操作し若しくは使用することができる。] 図2
[0040] 例えば、図2は、アプリケーション120が要求200を処理モジュール105に送信することを示している。この場合、要求200は、レコードEを「E´」に変更して、レコードEを作成する要求を含む。この要求を処理するために、図2は、処理モジュール105が、マップされたデータ構造195に対するリファレンスを介して要求200を処理することを示している。一実施例において、これは、処理モジュール105が要求200をマッピング情報と結合し、新たな要求(若しくは変更された形態の要求200)をアプリケーション125に送信することを意味している。例えば、図2は、処理モジュール105が要求240をアプリケーション125に送ることを示している。アプリケーション125は、要求240に含まれるマッピング情報220を理解しているので、アプリケーション125は、アプリケーション120からのデータ要素Eを変更するという要求を理解し、処理し得る。] 図2
[0041] そういうものとして、アプリケーション125は要求を処理し、通信チャネルを介して確認を送り返す。例えば、図2は、アプリケーション125が、データ要素Eが要求された通りE’に変更されたことを確認する応答250を準備し且つ送信することを示している。一実施例において、これは、メッセージ250を処理モジュール105に送信することを含み、そして、処理モジュール105がメッセージをアプリケーション120に転送する。その結果、アプリケーション120は、アプリケーション125によって使用された型コンベンションに関する詳細な知識を有することなく、アプリケーション125によって管理された1つ以上のデータ要素を操作した。] 図2
[0042] 従って、図1A、1B、及び2は、データにおける特定の構造型の割り当てに実質的に関係なく、アプリケーション間でデータを処理する多くの異なる概略図、要素、及び図を示している。むしろ、アプリケーションが互いを相互利用するために、考慮されなければならないすべてが、データの最も基本的なシェイプである。強くシェイプ付けされたシステムの重要な性能及びセキュリティ上の利点を保持するにもかかわらず、柔軟にシェイプ付けされたシステムには通常一般的であるような(すなわち、特定の型のコンベンションを懸念する必要なく)極めて高い柔軟性が、これにより開発者に提供され得ることが十分理解されるだろう。] 図1A
[0043] 前述に加えて、また、本発明の実施形態は、特定の結果を達成する1つ以上の動作を含む方法に関して、説明され得る。例えば、図3は、共通データ構造を使用して異なる構造の型に対応するデータにアクセスするか若しくはデータへのアクセスを提供する。図1Aから図2の要素及び図に関して図3に示された動作について説明する。] 図1A 図2 図3
[0044] 例えば、図3は、アプリケーション120の観点からの方法が、データアクセス要求を送信する動作300を含み得ることを示している。動作300は、1つ以上の異なる型の構造に対応するデータに対して1つ以上のアクセス要求を送信することを含む。例えば、図1Bに示されているように、アプリケーション120は、アクセス要求180を処理モジュール105に送信する。同様に、要求180は、別のアプリケーション(例えば、125)によって保持されたいくつかのデータのアクセス又は操作を含む。その別のアプリケーション(例えば、125)は、別の型の構造(若しくは明確に定義されていない型の構造)を使用している。] 図1B 図3
[0045] また、図3は、アプリケーション120の観点からの方法が、データを共通データ構造にマップするデータ構造を受信する動作310を含み得ることを示している。動作310は、当該要求されたデータと共通データ構造との間のマッピング情報を含む1つ以上のデータ構造を受信することを含む。例えば、図1Bに示されているように、アクセス要求180を受信する際に、処理モジュール105は、1つ以上の要求185を送信して、プロキシ170を始動する。そして、プロキシ170はアプリケーション125におけるデータ構造に行き来して、様々なデータシェイプが識別されることができる程度に、識別して、マップされたデータ構造195を返信する。そのマップされたデータ構造195は、要求されたデータを共通データ構造110に相互に関連付ける。] 図1B 図3
[0046] さらに、図3は、アプリケーション120の観点からの方法が、受信されたデータ構造を介して要求されたデータに対してオペレーションを実行する動作320を含み得ることを示している。動作320は、1つ以上のデータ構造に対して1つ以上の動作を要求することを含み、当該要求された1つ以上のオペレーションは、1つ以上の異なる型の構造に対応する。例えば図2に示されているように、アプリケーション120は、データ構造195におけるデータ要素EをE´に変更する要求を含む要求200を処理モジュール105に送信する。そして、この要求はマップされたデータ構造195及びメッセージ240を介して転送され、アプリケーション125を介して続いて処理される。] 図2 図3
[0047] その上、図3は、アプリケーション120の観点からの方法が、オペレーションが完了していることを確認する動作330を含み得ることを示している。動作330は、前記1つ以上の要求された動作が前記1つ以上の異なる型の構造に対応する前記要求されたデータに対して完了した旨の1つ以上の確認を受信することを含む。例えば、図2は、データ要素Eに対応するレコードがE´に変更されたことを確認するアプリケーション125が、1つ以上の確認応答250をアプリケーション120に送り返すことを示している。] 図2 図3
[0048] 前述に加えて、図3は、全体的なシステム100の観点からの方法が、異なる型の構造に対応するデータを要求するアクセス要求を受信する動作340を含み得ることを示している。動作340は、1つ以上の異なるアプリケーションによって保持されたデータに対する1つ以上のアクセス要求をアプリケーションから受信することを含み、当該要求されたデータは1つ以上の異なる型の構造に対応する。例えば、図1Bは、システム100が、処理モジュール105を介して、アプリケーションプログラム120から要求180を受信して、アプリケーション125のデータにアクセスすることを示している。この場合は、少なくとも1つのデータ要素がアプリケーション125に対して定義されるものの、他のデータ要素のいくつかは特定の構造型を有しておらず且つデータシェイプ(例えば、データ要素E)のみ有する。] 図1B 図3
[0049] また、図3は、システム100の観点からの方法が、異なる型の構造に対する対応するプロキシを識別する動作350を含み得ることを示している。動作350は、前記1つ以上の異なるアプリケーションに対応する1つ以上のプロキシを識別することを含む。例えば、図3は、処理モジュール105が、要求180を受信する際に、プロキシ170がアプリケーション125と相関することをレジストリ115において識別し、1つ以上の要求185を送信して、プロキシ170を始動することを示している。] 図3
[0050] さらに、図3は、システム100の観点からの方法が、当該要求されたデータを共通データ構造にマップする動作360を含み得ることを示している。動作360は、当該識別された1つ以上のプロキシを使用して、当該要求されたデータを共通データ構造にマップすることを含み、当該識別された1つ以上のプロキシはマップされたデータ構造を作成する。例えば、プロキシ170はデータ要素に行き来し、例えば、どのデータシェイプが、共通データ構造110のどの構造型に対応するのかを識別する。そして、プロキシ170は、マッピング情報を含むデータ構造195を作成する。そのマッピング情報は、要求されたデータ要素を共通データ構造の構造型に関連付ける(又は指定する)。] 図3
[0051] その上、図3は、システム100の観点からの方法が、マッピング情報を含むデータ構造を共通データ構造に送信する動作370を含むことを示している。動作370は、当該マップされたデータ構造を前記要求するアプリケーションに提供することを含む。例えば、図1Bに示されているように、処理モジュール105はマップされたデータ構造195をアプリケーション120に送信する。上述したように、アプリケーション120は、マップされたデータ構造195に適切にマップされたアプリケーション125におけるデータのいずれも操作することができる。] 図1B 図3
[0052] 従って、図1−3及び対応する本文は、種々のアプリケーションが異なる型のフレームワークで構築され得るものの、それらアプリケーションが互いのデータにアクセスし得ることを確実になす多くの要素及び機構を提供する。先に説明したように、本発明の少なくとも1つの利点は、開発者が特定の型のコンベンションよりむしろデータシェイプに対する考慮を主に依存することができるということである。型コンベンションを時々変更することよりも、データシェイプに関して集中することによって、旧来の若しくは新規な型のフレームワークで構築されたアプリケーションは、多数のオペレーションを享有することが可能となる。]
[0053] 本発明の実施形態は、以下でさらに詳細に説明するように、種々のコンピュータハードウェアを含む専用若しくは汎用のコンピュータを含み得る。また、本発明の範囲内の実施形態は、コンピュータ実行可能命令又はデータ構造を転送し若しくは有するコンピュータ読取可能媒体を含む。かかるコンピュータ読取可能媒体は、汎用若しくは専用コンピュータによってアクセスされ得る全ての利用可能な媒体であり得る。]
[0054] 限定ではなく、実施例として、かかるコンピュータ読取可能媒体は、RAM、ROM、EEPROM、CD−ROM、他の光ディスク記憶装置、磁気ディスク記憶装置、他の磁気記憶装置、又はいかなる他の媒体を含み得る。その他の媒体は、コンピュータ実行可能命令又はデータ構造の形態で所望のプログラムコード手段を転送し又は記憶するのに使用され得るし、汎用若しくは専用コンピュータによってアクセスされ得る。(配線接続、ワイヤレス、又は配線接続若しくはワイヤレスの組み合わせのいずれかの)ネットワーク又は別の通信接続上に情報がコンピュータに転送されるか又は提供されるとき、コンピュータは接続をコンピュータ読取可能な媒体であると適切にみなす。したがって、すべてのかかる接続はコンピュータ可読媒体と適切に称されている。上記組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。]
[0055] コンピュータ実行可能命令は、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスに特定の機能又は一群の機能を実行せしめる命令及びデータを例えば含む。本発明は、構造の機能及び/又は方法の動作に対して特定の言語によって説明されてきたが、添付した特許請求の範囲において画定された本発明は、上述した特定の特徴又は動作に必ずしも制限されるというわけではないことが理解されるべきであり、むしろ、上述した特定の特徴又は動作は特許請求の範囲を実装する典型的な形態として開示されている。]
[0056] 本発明は、その精神又は本質的な特徴より出発することなく、他の形態により具体化され得る。上述した実施形態は、すべての点において単なる実例として考慮されるべきであり、限定するものではないと考慮すべきである。それゆえに、本発明の範囲は、前述した説明ではなく、添付した特許請求の範囲に示されている。本特許請求の範囲と均等の意味であり且つ本特許請求の範囲の範囲内にあるすべての変更が、特許請求の範囲に含まれるものとする。]
权利要求:

請求項1
異なるデータシェイプ(135、140、145)に基づく異なる型の構造に対応する1つ以上のデータ要素を使用する1つ以上のアプリケーションプログラム(120、125、130)を含むコンピュータ化された環境のオブジェクト指向システム(100)において、異なる構造型を使用するアプリケーションが相互利用可能となるように共通データ構造(110)を使用して、異なる構造型のデータへのアクセスをアプリケーションに自動的に提供する方法であって、1つ以上の異なるアプリケーション(125、130)によって保持されたデータ(127、133)に対して、1つ以上のアクセス要求(180)をアプリケーション(120)から受信する動作(340)と前記1つ以上の異なるアプリケーションに対応する1つ以上のプロキシ(165、170、175)を識別する動作(350)と、当該識別された1つ以上のプロキシを使用して、当該要求されたデータを共通データ(110)構造にマップする動作(360)と、当該マップされたデータ構造(195)を前記要求するアプリケーションに提供する動作(370)とを含み、前記要求されたデータは1つ以上の異なる型の構造に対応し、前記識別された1つ以上のプロキシは、当該要求されたデータ(127、133)を前記共通データ構造(110)にマップするマップされたデータ構造(195)を作成することを特徴とする方法。
請求項2
前記識別されたプロキシのうちの少なくとも1つが、1つ以上の異なるアプリケーションプログラムのうちの1つによって提供されることを特徴とする請求項1に記載の方法。
請求項3
前記識別されたプロキシのうちの少なくとも1つが、前記システム(100)によって1つ以上の異なるアプリケーションプログラムのうちの1つに提供されたデフォルトであることを特徴とする請求項1に記載の方法。
請求項4
前記共通データ構造(110)における複数の構造型のうちの1つを前記要求されたデータに割り当てる動作をさらに含む請求項1に記載の方法。
請求項5
前記1つ以上の異なるアプリケーション(125、130)の各々において前記要求されたデータに対して、1つ以上のデータシェイプ(135、140、145)を識別する動作をさらに含む請求項4に記載の方法。
請求項6
前記共通データ構造(110)は、オペレーションに対する構造型、シーケンスに対する構造型、レコードに対する構造型、及び認識不可能なデータシェイプを有するデータに対する構造型を含むことを特徴とする請求項4に記載の方法。
請求項7
前記要求されたデータをマップする前記動作は、前記1つ以上のデータシェイプ(135、140、145)の1つが、値を返す引数又は関数に対応することを判断する動作と、前記1つのデータシェイプ(135)に対応する要求されたデータをオペレーションの構造型に割り当てる動作とをさらに含むことを特徴とする請求項6に記載の方法。
請求項8
前記要求されたデータをマップする前記動作は、前記要求されたデータのうちの少なくともいくつかは未定義のデータシェイプに対応することを判断する動作と、前記少なくともいくつかのデータを未定義のデータシェイプに対する構造型に割り当てる動作をさらに含むことを特徴とする請求項6に記載の方法。
請求項9
前記要求されたデータをマップする前記動作が、前記1つ以上のデータシェイプ(135、140、145)のうちの1つが値の集合に対応すると判断する動作をさらに含むことを特徴とする請求項6に記載の方法。
請求項10
前記値の集合が識別可能なラベルを有しないことを判断する動作と、前記データの集合をシーケンスの構造型に割り当てる動作とをさらに含む請求項9に記載の方法。
請求項11
前記値の集合は1つ以上の識別可能なラベルを有することを判断する動作と、前記データの集合をレコードの構造型に割り当てる動作と、をさらに含む請求項9に記載の方法。
請求項12
1つ以上の要求を受信して、前記要求されたデータのうちの少なくともいくつかに対して1つ以上のオペレーションを実行する動作と、前記マップされたデータ構造(195)を介して前記1つ以上のオペレーションを処理する動作と、をさらに含む請求項1に記載の方法。
請求項13
オブジェクト指向システム(100)及びインスツールされた1つ以上のアプリケーションプログラム(120、125、130)を含むコンピュータ化された環境で、異なる型の構造を有する1つ以上のデータ要素を実装するアプリケーションプログラム(120)において、共通データ構造(110)を介して1つ以上の異なる型の構造に対応するデータにアクセスする方法であって、1つ以上の異なる型の構造に対応するデータ(127、133)に対して、1つ以上のアクセス要求を送信する動作(300)と、前記要求されたデータと共通データ構造(110)の1つ以上の構造型との間のマッピング情報(210、220、230)を含む1つ以上のマップされたデータ構造(195)を受信する動作(310)と、当該1つ以上のマップされたデータ構造(195)に対する1つ以上の動作(200)を要求する(320)動作と、前記1つ以上の要求された動作が前記1つ以上の異なる型の構造に対応する前記要求されたデータ(127、133)に対して完了したという1つ以上の確認を受信(330)する動作を含み、前記要求された1つ以上の動作は、前記1つ以上の異なる型の構造の前記データ(127、133)に変換されることを特徴とする方法。
請求項14
前記1つ以上のマップされたデータ構造(195)は前記要求されたデータ(127、133)のうちの少なくともいくつかは1つ以上の値の集合を含むことを示し、前記集合はレコードの構造型に割り当てられることを特徴とする請求項13に記載の方法。
請求項15
1つ以上のオペレーションを要求する前記動作(320)は、前記1つ以上の値のうちの1つに対応するレコードの変化を要求する動作をさらに含み、前記1つ以上の確認は、前記変更が前記レコードにおいて完了されたことを識別することを特徴とする請求項16に記載の方法。
請求項16
前記1つ以上のマップされたデータ構造(195)は、前記要求されたデータ(127、133)のうちの少なくともいくつかがオペレーションの構造型に割り当てられる1つ以上の関数を含むことを示す特徴とする請求項13に記載の方法。
請求項17
1つ以上のオペレーションを要求する前記動作(320)は、前記オペレーション構造型に対応する1つ以上の関数が、前記要求されたデータ(127、133)を保持する異なるアプリケーション(125、130)によって実行されることを要求する動作をさらに含み、前記1つ以上の確認が前記1つ以上の機能が実行されたことを示すことを特徴とする請求項16に記載の方法。
請求項18
異なるデータシェイプ(135、140、145)に基づく異なる型の構造に対応する1つ以上のデータ要素を使用する1つ以上のアプリケーションプログラム(120、125、130)を含むコンピュータ化された環境のオブジェクト指向システム(100)において、記憶されたコンピュータ実行命令を有するコンピュータプログラム記憶プロダクトであって、前記記憶されたコンピュータ実行命令が実行されると、1つ以上の異なるアプリケーション(125、130)によって保持されたデータ(127、133)に対して、1つ以上のアクセス要求(180)をアプリケーション(120)から受信する動作(340)と、前記1つ以上の異なるアプリケーションに対応する1つ以上のプロキシ(165、170、175)を識別する動作(350)と、当該識別された1つ以上のプロキシを使用して、当該要求されたデータを共通データ(110)構造にマップする動作(360)と当該マップされたデータ構造(195)を前記要求するアプリケーションに提供する動作(370)とを含む方法を前記システムの1つ以上のプロセッサに実行せしめ、前記要求されたデータは1つ以上の異なる型の構造に対応し、前記識別された1つ以上のプロキシは、当該要求されたデータ(127、133)を前記共通データ構造(110)にマップするマップされたデータ構造(195)を作成することを特徴とするコンピュータプログラム記憶製品。
类似技术:
公开号 | 公开日 | 专利标题
US9122491B2|2015-09-01|Detecting serialization scheme used in software applications
AU2011323773B2|2015-07-23|Managing data set objects in a dataflow graph that represents a computer program
Michi et al.1999|Advanced CORBA® programming with C++
JP5204070B2|2013-06-05|ソフトウェア成果物の第2バージョンに移行する際に、当該ソフトウェア成果物の第1バージョンになされたカスタマイズをマージするためのツールを生成する方法、コンピュータ使用可能な媒体及びデータ処理システム
US6370681B1|2002-04-09|Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions
US7603658B2|2009-10-13|Application functionality for a test tool for application programming interfaces
US5860004A|1999-01-12|Code generator for applications in distributed object systems
US7373596B2|2008-05-13|Precise UML modeling framework of the DICOM information model
US8332828B2|2012-12-11|System for translating diverse programming languages
AU2002318459B2|2007-08-09|Programming language extensions for processing data representation language objects and related applications
EP2191362B1|2015-08-19|Managing data flows in graph-based computations
AU2004208330B2|2010-04-29|XML types in Java
JP2978807B2|1999-11-15|遠隔プロシージャ・コール・システムおよび方法
KR101278833B1|2013-07-01|구문 프로그램 언어 번역
AU2002354768B2|2008-05-15|Programming language extensions for processing XML objects and related applications
KR101354803B1|2014-02-19|유형 추론 및 유형 지향 후기 바인딩
US8375351B2|2013-02-12|Extensible rapid application development for disparate data sources
Lynch et al.1986|Introduction to the theory of nested transactions
US7934207B2|2011-04-26|Data schemata in programming language contracts
JP5230964B2|2013-07-10|コンピュータソフトウェア開発の方法およびシステム
US7437731B2|2008-10-14|Coordinated collaboration system in an integration platform
US20140040856A1|2014-02-06|Apparatus, Method and System for Building Software by Composition
CN100527127C|2009-08-12|查询中间语言的方法和系统
JP5268220B2|2013-08-21|二進データを解析する方法、システム及びコンピュータ製品
US6959307B2|2005-10-25|Process and system for a client object to perform a remote method invocation of a method in a server object
同族专利:
公开号 | 公开日
CN101952800A|2011-01-19|
US8307016B2|2012-11-06|
JP5400068B2|2014-01-29|
EP2260377B1|2019-02-27|
WO2009108426A2|2009-09-03|
EP2260377A4|2012-12-12|
US20130066925A1|2013-03-14|
EP2260377A2|2010-12-15|
CN101952800B|2015-01-14|
US8756257B2|2014-06-17|
WO2009108426A3|2009-10-29|
US20090216778A1|2009-08-27|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
JP2001060157A|1999-08-23|2001-03-06|Nec Corp|アプリケーション間メッセージ交換方式|
JP2003067356A|2001-08-28|2003-03-07|Fujitsu Ltd|アプリケーション間連携システム及びアプリケーション間連携方法|
JP2006085407A|2004-09-16|2006-03-30|Nec Corp|プログラム間通信システム、プログラム間通信方法、データ構造生成システムおよびプログラム|JP2013529811A|2010-06-23|2013-07-22|マイクロソフトコーポレーション|Application with many experience modules|US6208345B1|1998-04-15|2001-03-27|Adc Telecommunications, Inc.|Visual data integration system and method|
US6694357B1|1998-07-02|2004-02-17|Copernican Technologies, Inc.|Accessing, viewing and manipulation of references to non-modifiable data objects|
US7233952B1|1999-01-15|2007-06-19|Hon Hai Precision Industry, Ltd.|Apparatus for visualizing information in a data warehousing environment|
HK1020419A2|1999-03-16|2000-03-17|Shi Piu Joseph Fong|Frame model for universal database in database reengineering and integration|
US7099855B1|2000-01-13|2006-08-29|International Business Machines Corporation|System and method for electronic communication management|
FI20002720A|2000-12-12|2002-06-13|Nokia Corp|Menetelmä konversioiden suorittamiseksi|
US7536697B2|2001-06-19|2009-05-19|Accenture Global Services Gmbh|Integrating enterprise support systems|
US20030140058A1|2002-01-18|2003-07-24|Vitria Technology, Inc.|Method and apparatus for sharing information between applications using common objects|
JP2006523353A|2003-03-24|2006-10-12|シーベルシステムズ,インコーポレイティド|共通共通オブジェクト|
US7296022B2|2003-07-14|2007-11-13|Microsoft Corporation|Method and system for accessing a network database as a web service|
US7774486B2|2003-08-11|2010-08-10|Teamon Systems, Inc.|Communications system providing multi-layered extensible protocol interface and related methods|
US7263717B1|2003-12-17|2007-08-28|Sprint Communications Company L.P.|Integrated security framework and privacy database scheme|
US7660805B2|2003-12-23|2010-02-09|Canon Kabushiki Kaisha|Method of generating data servers for heterogeneous data sources|
US20050187980A1|2004-02-10|2005-08-25|Microsoft Corporation|Systems and methods for hosting the common language runtime in a database management system|
US20070050206A1|2004-10-26|2007-03-01|Marathon Petroleum Company Llc|Method and apparatus for operating data management and control|
US8145653B2|2005-04-08|2012-03-27|International Business Machines Corporation|Using schemas to generate application specific business objects for use in an integration broker|
US20070156737A1|2005-12-15|2007-07-05|First Data Corporation|Application integration systems and methods|
US7720806B2|2006-05-15|2010-05-18|Algebraix Data Corporation|Systems and methods for data manipulation using multiple storage formats|
US8307016B2|2008-02-25|2012-11-06|Microsoft Corporation|Accessing different application data via a common data structure|US8307016B2|2008-02-25|2012-11-06|Microsoft Corporation|Accessing different application data via a common data structure|
JP5719139B2|2009-10-09|2015-05-13|株式会社Nttドコモ|モバイル装置上のアプリケーション間でコンテキストデータを交換するシステム及び方法|
CN101840230B|2010-06-04|2012-02-01|浙江中控技术股份有限公司|一种监控和管理数据的方法及系统|
US9766718B2|2011-02-28|2017-09-19|Blackberry Limited|Electronic device and method of displaying information in response to input|
US9164751B2|2011-09-30|2015-10-20|Emc Corporation|System and method of rolling upgrades of data traits|
US8612405B1|2011-09-30|2013-12-17|Emc Corporation|System and method of dynamic data object upgrades|
US8484208B1|2012-02-16|2013-07-09|Oracle International Corporation|Displaying results of keyword search over enterprise data|
US8700673B2|2012-02-16|2014-04-15|Oracle International Corporation|Mechanisms for metadata search in enterprise applications|
US8682932B2|2012-02-16|2014-03-25|Oracle International Corporation|Mechanisms for searching enterprise data graphs|
US9646092B2|2014-10-10|2017-05-09|Adp, Llc|Centralized application programming interface monitoring tool|
US10447676B2|2014-10-10|2019-10-15|Adp, Llc|Securing application programming interfacesthrough infrastructure virtualization|
US9819732B2|2015-07-31|2017-11-14|Netapp, Inc.|Methods for centralized management API service across disparate storage platforms and devices thereof|
EP3136371A1|2015-08-31|2017-03-01|The Boeing Company|Air vehicle navigation method via a common runtime aircraft intent data structure|
US9854060B2|2015-09-29|2017-12-26|Netapp, Inc.|Methods and systems for monitoring network storage system resources by an API server|
US9798891B2|2015-10-13|2017-10-24|Netapp, Inc.|Methods and systems for service level objective API for storage management|
WO2017188928A1|2016-04-25|2017-11-02|Hewlett Packard Enterprise Development Lp|Persona object to access data|
CN106528874B|2016-12-08|2019-07-19|重庆邮电大学|基于Spark内存计算大数据平台的CLR多标签数据分类方法|
KR20200084695A|2019-01-03|2020-07-13|삼성전자주식회사|응용프로그램의 관리 장치 및 방법|
法律状态:
2011-12-27| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111226 |
2011-12-27| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111226 |
2013-04-25| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130425 |
2013-06-03| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130531 |
2013-07-02| RD03| Notification of appointment of power of attorney|Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20130701 |
2013-09-03| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130902 |
2013-09-07| RD04| Notification of resignation of power of attorney|Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130906 |
2013-09-19| TRDD| Decision of grant or rejection written|
2013-09-26| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130925 |
2013-10-31| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131024 |
2013-11-01| R150| Certificate of patent or registration of utility model|Ref document number: 5400068 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2015-04-16| S111| Request for change of ownership or part of ownership|Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
2015-04-24| R350| Written notification of registration of transfer|Free format text: JAPANESE INTERMEDIATE CODE: R350 |
2016-11-01| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2017-11-07| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2018-11-06| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2019-11-05| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2020-10-30| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2021-10-29| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]